<HTML><HEAD> <!-- ----------- Hex Numbers ----------- --> <SCRIPT LANGUAGE="JavaScript"><!-- hide from old browsers /* THE JAVASCRIPT COOKBOOK by Erica Sadun, webrx@mindspring.com Copyright (c)1998 by Charles River Media. All Rights Reserved. This applet can only be re-used or modifed by license holders of the JavaScript Cookbook CD-ROM. Credit must be given in the source code and this copyright notice must be maintained. If you do not hold a license to the JavaScript Cookbook, you may NOT duplicate or modify this code for your own use. Use at your own risk. No warranty is given or implied of the suitability of this applet for any specific application. Neither Erica Sadun nor Charles River Media will be held responsible for any unwanted effects due to the use of this applet or any derivative. */ // --------------------Hexadecimal Conversion--------------------- // convert a single digit (0 - 16) into hex function enHex(aDigit) { return("0123456789ABCDEF".substring(aDigit, aDigit+1)) } // convert a hex digit into decimal function deHex(aDigit) { return("0123456789ABCDEF".indexOf(aDigit)) } // Convert a 24bit number to hex function toHex(n) { return (enHex((0xf00000 & n) >> 20) + enHex((0x0f0000 & n) >> 16) + enHex((0x00f000 & n) >> 12) + enHex((0x000f00 & n) >> 8) + enHex((0x0000f0 & n) >> 4) + enHex((0x00000f & n) >> 0)) } // Convert a six character hex to decimal function toDecimal(hexNum) { var tmp = ""+hexNum.toUpperCase() while (tmp.length < 6) tmp = "0"+tmp return ((deHex(tmp.substring(0,1)) << 20) + (deHex(tmp.substring(1,2)) << 16) + (deHex(tmp.substring(2,3)) << 12) + (deHex(tmp.substring(3,4)) << 8) + (deHex(tmp.substring(4,5)) << 4) + (deHex(tmp.substring(5,6)))) } // Convert field to hex function showToHex() { document.forms[0].NOUT.value = toHex(parseInt(document.forms[0].NIN.value)) } // Convert field to decimal function showToDec() { document.forms[0].NIN.value = toDecimal(document.forms[0].NOUT.value) } <!-- done hiding --></SCRIPT></HEAD> <BODY BGCOLOR="FFFFFF" LINK="007777" VLINK="007777" ALINK="00FFFF"> <FONT COLOR="007777"><H1><IMG SRC="../GRAFX/UTENS.JPG" WIDTH=80 HEIGHT=50 ALIGN = LEFT>Color "Hex" Numbers</H1></FONT> <FONT SIZE=4> JavaScript colors are stored as twenty-four bit values that must be represented in base sixteen (hexadecimal, or 'hex' for short) before they can be used by JavaScript. Hex numbers range from zero to nine and the letter A through the letter F. In hexadecimal, the number 0x10 means 16. Here's a chart to compare values in hex (base 16) with decimal values (base 10).<p> </FONT> <CENTER><TABLE BORDER=2> <TR><TD COLSPAN=8><FONT COLOR="007777" SIZE=4><b> Hex Numbers</FONT></b></TD></TR> <TR> <td align=center><b>Hex</b></td><td align=center><b>Decimal</b></td> <td align=center><b>Hex</b></td><td align=center><b>Decimal</b></td> <td align=center><b>Hex</b></td><td align=center><b>Decimal</b></td> <td align=center><b>Hex</b></td><td align=center><b>Decimal</b></td> </TR><TR> <td align=center>0</td><td align=center>0</td> <td align=center>1</td><td align=center>1</td> <td align=center>2</td><td align=center>2</td> <td align=center>3</td><td align=center>3</td> </TR><TR> <td align=center>4</td><td align=center>4</td> <td align=center>5</td><td align=center>5</td> <td align=center>6</td><td align=center>6</td> <td align=center>7</td><td align=center>7</td> </TR><TR> <td align=center>8</td><td align=center>8</td> <td align=center>9</td><td align=center>9</td> <td align=center>A</td><td align=center>10</td> <td align=center>B</td><td align=center>11</td> </TR><TR> <td align=center>C</td><td align=center>12</td> <td align=center>D</td><td align=center>13</td> <td align=center>E</td><td align=center>14</td> <td align=center>F</td><td align=center>15</td> </TR> </SCRIPT></TABLE></CENTER> <BR><BR> <FONT SIZE=4> <b>Try it out.</b> Try converting your own numbers from decimal to hex and back. This utility uses the <FONT COLOR="770000">toHex()</FONT> and <FONT COLOR="770000">toDecimal()</FONT> functions to translate the data between hexadecimal and decimal formats. Try converting: <ul> <li>256 decimal to hexadecimal <li>64 in hexadecimal to decimal <li>65535 decimal to hexadecimal <li>400 hexadecimal to decimal </ul> <CENTER><FORM> Decimal:<INPUT TYPE="TEXT" SIZE=8 NAME="NIN" VALUE="0"> <INPUT TYPE="BUTTON" VALUE="<- to Decimal" onClick=showToDec()> <INPUT TYPE="BUTTON" VALUE="-> to Hex" onClick=showToHex()> <INPUT TYPE="TEXT" SIZE=8 NAME="NOUT" VALUE="000000">:Hex </FORM></CENTER></FONT> <BR><BR> <FONT COLOR="770000" SIZE=3><PRE> // --------------------Hexadecimal Conversion--------------------- // convert a single digit (0 - 16) into hex function enHex(aDigit) { return("0123456789ABCDEF".substring(aDigit, aDigit+1)) } // convert a hex digit into decimal function deHex(aDigit) { return("0123456789ABCDEF".indexOf(aDigit)) } // Convert a 24bit number to hex function toHex(n) { return (enHex((0xf00000 & n) >> 20) + enHex((0x0f0000 & n) >> 16) + enHex((0x00f000 & n) >> 12) + enHex((0x000f00 & n) >> 8) + enHex((0x0000f0 & n) >> 4) + enHex((0x00000f & n) >> 0)) } // Convert a six character hex to decimal function toDecimal(hexNum) { var tmp = ""+hexNum.toUpperCase() while (tmp.length < 6) tmp = "0"+tmp return ((deHex(tmp.substring(0,1)) << 20) + (deHex(tmp.substring(1,2)) << 16) + (deHex(tmp.substring(2,3)) << 12) + (deHex(tmp.substring(3,4)) << 8) + (deHex(tmp.substring(4,5)) << 4) + (deHex(tmp.substring(5,6)))) } </PRE></FONT> <h5>Copyright ©1996 by Charles River Media, All Rights Reserved</h5> </BODY> </HTML>